import java.util.Calendar;
import java.util.Date;

/**
 * Calendar类的常用成员方法:
 *     public int get(int field)：返回给定日历字段的值。
 *     public void set(int field, int value)：将给定的日历字段设置为给定值。
 *     public abstract void add(int field, int amount)：根据日历的规则，为给定的日历字段添加或减去指定的时间量。
 *     public Date getTime()：返回一个表示此Calendar时间值（从历元到现在的毫秒偏移量）的Date对象。
 * 成员方法的参数:
 *     int field:日历类的字段,可以使用Calendar类的静态成员变量获取
 *         public static final int YEAR = 1;	年
 *         public static final int MONTH = 2;	月
 *         public static final int DATE = 5;	月中的某一天
 *         public static final int DAY_OF_MONTH = 5;月中的某一天
 *         public static final int HOUR = 10; 		时
 *         public static final int MINUTE = 12; 	分
 *         public static final int SECOND = 13;	秒
 */
public class CalendarDemo {
    public static void main(String[] args) {

        //使用getInstance方法获取Calendar对象
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        //        int date = c.get(Calendar.DAY_OF_MONTH);
        int date = c.get(Calendar.DATE);
        System.out.println(year);   //2020
        System.out.println(month);//月份0-11
        System.out.println(date);  //10


        c.set(Calendar.YEAR,9999); //设置年为9999
        c.set(Calendar.MONTH,9);  //设置月为9月
        c.set(Calendar.DATE,9); //设置日9日
        //同时设置年月日,可以使用set的重载方法
        c.set(8888,8,8);

        int year1 = c.get(Calendar.YEAR);
        int month1 = c.get(Calendar.MONTH);
        int date1 = c.get(Calendar.DATE);
        System.out.println(year1);  //8888
        System.out.println(month1); //西方的月份0-11
        System.out.println(date1); //8

        c.add(Calendar.YEAR,2);    //把年增加2年
        c.add(Calendar.MONTH,-3);  //把月份减少3个月
        int year2 = c.get(Calendar.YEAR);
        int month2 = c.get(Calendar.MONTH);
        int date2 = c.get(Calendar.DATE);
        //int date = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year2);
        System.out.println(month2); //西方的月份0-11
        System.out.println(date2);

        Date time = c.getTime();
        System.out.println(time);  //获取毫秒数

    }

}
